# -*- coding: utf-8 -*-
import csv
from models.catalog import Catalog
from models.product import Product, attributesCode as attributes
from settings import  host

class Davilki():
    products = {}
    catalog = Catalog()

    def __init__(self, attributes_code=None, entitys_id=None):
        if attributes_code:
            self.setProducts(attributes_code, entitys_id)

    def createPriceForNadavi(self, file):
        writer = csv.writer(file, dialect=excel_semicolon)
        writer.writerow(['Группа товаров', 'Брэнд', 'Модель', 'Описание', 'Цена, розн.', 'Ссылка на описание',
                         'Ссылка на картинку'])
        for key in self.products.keys():
            writer.writerow((self.products[key].main_type, self.products[key].brand_name,
                             self.products[key].name.lower().replace(self.products[key].brand_name.lower() + ' ', ''),
                             self.products[key].short_description,
                             self.products[key].special_price if self.products[key].special_price else self.products[
                                                                                                       key].price,
                             host + self.products[key].url_key,
                             host + 'media/catalog/product' + self.products[key].image))
        return file

    def setProducts(self, attributes_code=None, entitys_id=None):
        self.catalog = Catalog()
        self.catalog.setAllProducts(attributes_code=None, entitys_id=None)
        self.products = self.catalog.products

    def setProductsByFiltr(self, filtr, attributes_code=None, entitys_id=None):
        self.catalog.filtrProducts(filtr)
        self.products = self.catalog.products

    def createPriceForHotline(self, file):
        writer = csv.writer(file, dialect=excel_semicolon)
        writer.writerow(
            ['Категория товара ', 'Производитель', 'Наименование  товара', 'Код модели (артикул производителя)',
             'Описание товара', 'Цена розн., грн.', 'Гарантия', 'Наличие', 'Ссылка на товар', 'Ссылка на изображение'])
        for key in self.products.keys():
            writer.writerow((self.products[key].main_type, self.products[key].brand_name,
                             self.products[key].name.lower().replace(self.products[key].brand_name.lower() + ' ', ''),
                             '',
                             self.products[key].short_description,
                             self.products[key].special_price if self.products[key].special_price else self.products[
                                                                                                       key].price, '',
                             'склад',
                             host + self.products[key].url_key,
                             host + 'media/catalog/product' + self.products[key].image))
        return file

    def createPriceForPriceua(self, file):
        writer = csv.writer(file, dialect=priceua_semicolon)
        writer.writerow(
            ['Тип товара', 'Производитель', 'Наименование  товара', 'Цена роз. $', 'Цена рзн грн', 'Цена бн грн',
             'Гарантия', 'Наличие', 'Ссылка на товарную позицию', 'Ссылка на изображение'])
        for key in self.products.keys():
            writer.writerow((self.products[key].main_type, self.products[key].brand_name, self.products[key].name, '',
                             self.products[key].special_price if self.products[key].special_price else self.products[
                                                                                                       key].price, '',
                             '', 'Склад',
                             host + self.products[key].url_key,
                             host + 'media/catalog/product' + self.products[key].image))
        return file


class excel_semicolon(csv.excel):
    delimiter = ';'
    quotechar = '\"'
    doublequote = True
    skipinitialspace = False
    lineterminator = '\r\n'
    quoting = csv.QUOTE_NONNUMERIC


class priceua_semicolon(csv.excel):
    delimiter = ';'
    quotechar = '"'
    doublequote = True
    skipinitialspace = False
    lineterminator = '\r\n'
